using System;
using System.Collections.Generic;
using System.Text;

namespace AntEater.ComponentModel.BuildElements
{
    /// <summary>
    /// Specifies a Type as Build Element.
    /// </summary>
    [AttributeUsage(AttributeTargets.Class,AllowMultiple=false,Inherited=true)]
    public sealed class BuildElementAttribute:Attribute
    {

        /// <summary>
        /// Initializes a new instance of the <see cref="T:BuildElementAttribute"/> class.
        /// </summary>
        /// <param name="name">The name.</param>
        public BuildElementAttribute(string name) {
            _name = name;
        }

        private string _name;
        
        /// <summary>
        /// Gets or sets the name.
        /// </summary>
        /// <value>The name.</value>
        public string Name
        {
            get { return _name; }
        }

        private bool _hasDynamicElementName;

        /// <summary>
        /// Gets or sets a value indicating whether the build element has an dynamic name.
        /// </summary>
        /// <value>
        /// 	<c>true</c> if the build element has dynamic name; otherwise, <c>false</c>.
        /// </value>
        public bool HasDynamicElementName {
            get { return _hasDynamicElementName; }
            set { _hasDynamicElementName = value; }
        }
    }
}
